@@ -13,7 +13,7 @@ from account.serializers import GroupSerializer, LensmanInfoSerializer, UserInfo |
||
13 | 13 |
from operation.models import GuestEntranceControlInfo |
14 | 14 |
from utils.error.errno_utils import LensmanStatusCode, UserStatusCode |
15 | 15 |
from utils.error.response_utils import response |
16 |
-from utils.ip_utils import ip_addr |
|
16 |
+from utils.ip_utils import get_client_ip |
|
17 | 17 |
from utils.redis.rguest import get_guest_entrance_control |
18 | 18 |
from utils.redis.rprofile import set_profile_info |
19 | 19 |
from utils.version_utils import is_version_match |
@@ -56,7 +56,7 @@ def user_signup_api(request): |
||
56 | 56 |
return response(UserStatusCode.USERNAME_HAS_REGISTERED) |
57 | 57 |
|
58 | 58 |
# 判断 user_id 是否存在并且为分配用户,如果存在并且为分配用户,则直接在该帐户上更新,否则则直接创建帐户 |
59 |
- signup_ip, signup_at = ip_addr(request), tc.utc_datetime() |
|
59 |
+ signup_ip, signup_at = get_client_ip(request), tc.utc_datetime() |
|
60 | 60 |
|
61 | 61 |
try: |
62 | 62 |
user = UserInfo.objects.select_for_update().get(user_id=user_id) |
@@ -96,7 +96,7 @@ def user_login_api(request): |
||
96 | 96 |
except UserInfo.DoesNotExist: |
97 | 97 |
return response(UserStatusCode.USER_NOT_FOUND) |
98 | 98 |
|
99 |
- login_ip, login_at = ip_addr(request), tc.utc_datetime() |
|
99 |
+ login_ip, login_at = get_client_ip(request), tc.utc_datetime() |
|
100 | 100 |
|
101 | 101 |
if not check_password(password, user.password): |
102 | 102 |
UserLoginLogInfo.objects.create( |
@@ -156,7 +156,7 @@ def user_wx_authorize_api(request): |
||
156 | 156 |
# unionid 不存在 |
157 | 157 |
# 判断 user_id 是否存在并且为分配用户,如果存在并且为分配用户,则直接在该帐户上更新,否则则直接创建帐户 |
158 | 158 |
|
159 |
- signup_ip, signup_at = ip_addr(request), tc.utc_datetime() |
|
159 |
+ signup_ip, signup_at = get_client_ip(request), tc.utc_datetime() |
|
160 | 160 |
|
161 | 161 |
try: |
162 | 162 |
user = UserInfo.objects.select_for_update().get(user_id=user_id) |
@@ -18,7 +18,7 @@ from photo.models import PhotosInfo |
||
18 | 18 |
from photo.serializers import PhotosInfoSerializer |
19 | 19 |
from utils.error.errno_utils import LensmanStatusCode, PhotoStatusCode |
20 | 20 |
from utils.error.response_utils import response |
21 |
-from utils.ip_utils import ip_addr |
|
21 |
+from utils.ip_utils import get_client_ip |
|
22 | 22 |
from utils.redis.rgroup import get_group_info, set_group_info, set_group_users_info |
23 | 23 |
from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET, |
24 | 24 |
GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, UUID_LIST) |
@@ -125,7 +125,7 @@ def session_join_api(request): |
||
125 | 125 |
user, user_created = UserInfo.objects.get_or_create(user_id=user_id, defaults={ |
126 | 126 |
'user_id': CurtailUUID.uuid(UserInfo, 'user_id'), |
127 | 127 |
'user_status': UserInfo.ASSIGN, |
128 |
- 'assign_ip': ip_addr(request), |
|
128 |
+ 'assign_ip': get_client_ip(request), |
|
129 | 129 |
'assign_at': tc.utc_datetime(), |
130 | 130 |
}) |
131 | 131 |
user_id = user.user_id |
@@ -1,5 +1,10 @@ |
||
1 | 1 |
# -*- coding: utf-8 -*- |
2 | 2 |
|
3 | 3 |
|
4 |
-def ip_addr(request): |
|
5 |
- return request.META['HTTP_X_FORWARDED_FOR'] if 'HTTP_X_FORWARDED_FOR' in request.META else request.META['REMOTE_ADDR'] |
|
4 |
+def get_client_ip(request): |
|
5 |
+ x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') |
|
6 |
+ if x_forwarded_for: |
|
7 |
+ ip = x_forwarded_for.split(',')[0] |
|
8 |
+ else: |
|
9 |
+ ip = request.META.get('REMOTE_ADDR') |
|
10 |
+ return ip |